package com.sxy.demo.sxy;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;
import java.util.List;

/**
 * Description:TODO
 *
 * @author：zhousc
 * @Version：公共商品, v0.1 2022-08-22 14:22:47 zhousc
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("rms_goods_public_spu")
public class GoodsPublicSpu extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 商品spu编码
     */
    private String goodsSpuCode;
    /**
     * 商品名称;根据规则自动生成
     */
    private String goodsName;
    /**
     * 商品分类
     */
    private Long categoryId;
    /**
     * 商品品牌code
     */
    private String brandCode;
    /**
     * 品牌类型；1-品牌，2-白牌
     */
    private String brandType;
    /**
     * 商品类型；1-常规商品，2-清仓尾货商品
     */
    private String goodsType;
    /**
     * 标准类型；0-非标准链接，1-准标准链接，2-标准链接
     */
    private String standardType;
    /**
     * 商品状态；常规商品：10-待审核，20-审核拒绝，30-已生效，40-已禁用；清仓商品：10-待上架，20-已上架，30-已下架
     */
    private Integer goodsSpuState;
    /**
     * 是否已提交；0-未提交，1-已提交
     */
    private Integer isCommit;
    /**
     * 上架时间
     */
    private Date putOnTime;
    /**
     * 下架时间
     */
    private Date putDownTime;
    /**
     * 是否存在品牌控价；0-不存在，1-存在
     */
    private Boolean isControlPrice;
    /**
     * 备注
     */
    private String description;

    /**
     * 分润类型（1:分润|2:不分润|3:只分给云店主|4:服务大使、代理半佣）
     */
    private Integer shareProfitType;

    /**
     * 分润类型对应的销售价格类型：1 批发价，2 零售价
     */
    private Integer shareProfitPriceType;
    /**
     * 商品名称规则 0:默认生成 1:自定义名称
     */
    private Integer goodsNameCustom;
    /**
     * 虚拟销量
     */
    private Integer virtualNum;

    /**
     * 商品分类 甄选商品:PICK、常规商品:REGULAR
     */
    private String goodsCategory;

    /**
     * 商品范围 CROSS_BORDER=跨境商家 DOMESTIC=国内商家
     */
    private String goodsScope;

    /**
     * 业务类型 DOMESTIC=国内 BONDED_BUSINESS=保税业务 OVERSEAS_DIRECT_MAIL=海外直邮
     */
    private String goodsBusinessType;

    /**
     *
     * ---------------------------------依赖实体---------------------------------
     *
     *
     */

    /**
     * 所有categoryPath包含category_id的所有记录
     * @see GoodsPublicSpu#categoryId
     */
    private List<PlatformCategory> platformCategoryList ;

    /**
     * @see platformCategoryList 的
     * @see PlatformCategory#categoryId 的集合
     *
     */
    private List<CategoryGrossProfitRate> thirdCategoryGrossProfitRateList;

    /**
     * @see GoodsPublicSpu#brandCode
     */
    private BrandPool brandPool;

    /**
     * @see GoodsPublicSpu#brandCode
     */
    private SupplierBrandPool supplierBrandPool;

    /**
     * @see GoodsPublicSpu#id
     *  @see GoodsPublicSpu#deleted=0
     */
    private List<GoodsPublicSpuAttributes> goodsPublicSpuAttributes;

    /**
     * @see GoodsPublicSpu#categoryId
     */
    private List<PlatformCategoryAttributes> categoryAttributesList;

    /**
     * @see GoodsPublicSpu#categoryAttributesList
     * . PlatformCategoryAttributes#goodsAttributesId 的集合
     */
    private List<PlatformAttributes> parentAttributesList;

    /**
     * @see GoodsPublicSpu#id
     */
    private List<BidRegionGoodsSkuItemVO> bidRegionGoodsSkuItemVOS;

    /**
     * @see GoodsPublicSpu#bidRegionGoodsSkuItemVOS 的 rms.good.api.sxy.BidRegionGoodsSkuItemVO# goodsSkuCode 的集合
     */
    private List<BidRegionGoodsSupplierSkuItemVO> goodsSupplierSkus;

    /**
     * @see GoodsPublicSpu#id
     */
    private List<GoodsPublicImage> goodsPublicImageS;

    /**
     * @see GoodsPublicSpu#id
     */
    private GoodsPublicDesc goodsPublicDesc;

    /**
     * @see GoodsPublicSpu#goodsSpuCode
     */
    private GoodsSupplierSpu goodsSupplierSpu;

    /**
     * @see GoodsPublicSpu#id
     */
    private List<ActivityForbiddenGoods> forbiddenGoods;
    /**
     * @see GoodsPublicSpu#id
     */
    private List<ActivityMutual> skuActivityMutualList;
    /**
     * @see GoodsPublicSpu#categoryId
     */
    private List<CategoryDTO> categoryDTOS;

    /**
     * @see GoodsPublicSpu#id
     */
    private List<GoodsPublicSku> goodsPublicSku;
    /**
     * @see GoodsPublicSpu#id
     */
    private List<ChannelWholesaleExcludeProduct> channelWholesaleExcludeProducts;
    /**
     * @see GoodsPublicSpu#id
     */
    private List<ProductSpecialConfig> productSpecialConfig;
    /**
     * @see GoodsPublicSpu#id
     */
    private List<ActActivityGroupInfo> activityGroupInfo;
    /**
     * @see GoodsPublicSpu#id
     */
    private List<WelfareProductClassificationBO>  welfareProductClassificationBOList;

    /**
     * @see GoodsPublicSpu#id
     */
    private List<ActivityPreSaleProduct> activityPreSaleProducts;

    /**
     * @see GoodsPublicSpu#id
     * userId
     */
    private List<MyFollowPO> lmp;

    /**
     * @see GoodsPublicSpu#id
     * ProductMarkTypeEnum.SHARE.getId()  type =0
     */
    private ProductMark productMark;
    /**
     * @see GoodsPublicSpu#id
     *   type =2
     */
    private ProductRefundLock productRefundLock;





}
